(function(){
    function TourLogin(){}//游客登录
    TourLogin.prototype={
        init:function(opts){
            this.required_register=opts.required_register;
            this.jumpPage=opts.jumpPage;//游客登录页面跳转
            this.smsTPL=opts.smsTPL;//短信编码
            this.opts={
                events:opts.events||"click",
                formInput:opts.formInput,
                loginBtn:opts.loginBtn,//登录按钮
                mobileText:opts.form.mobile||"input",//账号框
                codesText:opts.form.codes,//短信验证码框
                codeBtn:opts.form.getcodeBtn,//获取验证码按钮
                imgCode:opts.form.randomCode,//图像验证码文本框
                codeImg:opts.codeBox,//图片验证码
                modal:opts.model.modal,//模态框
                modalSure:opts.model.sureBtn,//模态框确定按钮
                modalCancel:opts.model.cancelBtn//模态框关闭按钮
            };
            this.statusText(//判断文本框的状态
                this.opts.formInput,
                this.opts.mobileText,
                this.opts.codesText,
                this.opts.imgCode,
                this.opts.loginBtn,
                this.opts.codeBtn
            );
            //图片验证弹窗
            this.picAlertbox(
                this.opts.codeBtn,//获取验证码按钮
                this.opts.modalCancel,//关闭
                this.opts.modalSure,//确认
                this.opts.codeImg,//点击
                this.opts.mobileText,//手机号码
                this.opts.modal,//模态框
                this.opts.codesText,//短信验证文本框
                this.opts.imgCode,//图片验证码输入框
                this.required_register//是否是新用户
            );

            //登录事件模块
            this.loginFunc(
                this.opts.loginBtn,//登录按钮
                this.opts.mobileText,//手机号
                this.opts.codesText,//验证码
                this.opts.modal//模态框
            );
        },

        //判断文本框的状态，
        statusText:function(opts,optsA,optsB,optsC,btns,getCode){
            var self=this;
            //阻止冒泡
            $(opts).parents("dl").on(this.opts.events,function(ev){
                ev.preventDefault();
                ev.stopPropagation();
            });

            //公共方法  文本框获取焦点则取消错误样式------------------------------
            oPublic.focusCancel(this.opts.formInput);

            //判断登录按钮是否可用
            $(opts).keyup(function(){
                if($(optsA).val().length==11&&$(optsB).val().length==4){
                    $(btns).attr("disabled",false).addClass("active_status");
                }else{
                    $(btns).attr("disabled",true).removeClass("active_status");
                }
            });
        },
        //获取图形验证码-----------------------------
        getCodeImg:function(opt){
            oPublic.getCode(opt);//公共方法获取图片验证码
            $(opt).on(this.opts.events,function(){
                oPublic.getCode(opt);
            })
        },
        //图片验证码弹窗的确认与取消------------------------
        /*1.取消  移除弹窗   2.确定  判断验证码[提示格式错误]*/
        picAlertbox:function(getCodeBtn,closeBtn,sureBtn,imgCodes,telephone,modal,codeText,imgCodeText,bool){
            var self=this;
            //点击获取验证码弹出模态框
            self.getCodeImg(imgCodes);
            $(getCodeBtn).on(self.opts.events,function(){
                $(imgCodeText).val("");
                var flag=true;
                var dataPhoneEmpty=$(telephone).data("empty");
                var dataPhoneError=$(telephone).data("error");
                var dataReg=new RegExp($(telephone).data("reg"));
                var oValue=$(telephone).val();
                //判断手机号是否为空---
                if(oValue.length==0){
                    oPublic.errorText($(telephone),dataPhoneEmpty,"warn","dl");
                    flag=false;
                    return;
                }
                //判断手机号格式是否正确---
                if(!dataReg.test(oValue)){
                    oPublic.errorText($(telephone),dataPhoneError,"warn","dl");
                    flag=false;
                    return;
                }


                if(bool){
                    //记录手机号的serverId
                    oPublic.getServerId($(telephone).val(),function(){
                        oPublic.getCode(imgCodes);//公共方法获取图片验证码//获取图形验证码
                        $(self.opts.modal).removeClass("hide");//隐藏模态框
                    });
                }else{
                    if(flag){
                        oPublic.getCode(imgCodes);//公共方法获取图片验证码//获取图形验证码
                        $(self.opts.modal).removeClass("hide");//隐藏模态框
                    }
                }
            });
            //点击取消关闭模态框
            $(closeBtn).on(self.opts.events,function(){
                $(self.opts.modal).addClass("hide");
            });
            //点击确定进行判断
            $(sureBtn).on(self.opts.events,function(){
                var empty=$(imgCodeText).attr("data-empty");//图形验证码为空
                var imgCodeValue=$(imgCodeText).val();//获取文本框图形验证码
                var phone=$(telephone).val();//手机号码

                //如果图形验证码为空，则提示信息
                if(imgCodeValue.length==0){
                    oPublic.errorText(imgCodeText,empty,"errorMsg");
                    return;
                }

                $(".loading_model").removeClass("hide");
                //发送ajax请求------------
                $.ajax({
                    type:"get",
                    url:oPublic.basePath()+"/s/sms/msg/visitor",
                    data:{
                        mobile:phone,
                        imgCode:imgCodeValue,
                        tokenCode:localStorage.getItem("code"),
                        smsTplCode:self.smsTPL
                    },
                    success:function(data){
                        //如果信息无误
                        if(data.opStatus==0){
                            //直接发送短息------进入验证码倒计时阶段,调出正确发出弹窗
                            $(".loading_model").addClass("hide");
                            oPublic.pubilcModal(data.msgDesc,"确定");
                            oPublic.getShortTime(getCodeBtn,modal,codeText);
                        }else{ //如果信息有误则报出错误信息
                            if(data.msgDesc.indexOf("该手机已经")!==-1){
                                $(".loading_model").addClass("hide");
                                $(modal).addClass("hide");
                                oPublic.errorText(telephone,data.msgDesc,"warn","dl");
                                return;
                            }
                            oPublic.getCode(self.opts.codeImg);//更换验证码
                            oPublic.errorText(imgCodeText,data.msgDesc,"errorMsg");
                        }
                    },
                    error:function(){
                        console.log("data is error..........");
                    }
                })

            });
        },
        //登录功能----------------------------
        loginFunc:function(loginBtn,mobile,shortcode,modal){
            //登录按钮  事件调用
            var self=this;
            $(loginBtn).on(this.opts.events,function(){
                var flag=true;
                var mobileText=$(mobile).val();//手机号
                var codeText=$(shortcode).val();//验证码
                //判断手机号码的格式
                $(self.opts.formInput).each(function(){
                    var oValue=$(this).val();
                    var errorMsg=$(this).attr("data-error");
                    var regStr=$(this).attr("data-reg");
                    var reg=new RegExp(regStr);//正则匹配
                    if(reg&&!reg.test(oValue)){
                        oPublic.errorText($(this),errorMsg,"warn","dl",".pass_eye em");
                        flag=false;
                        return;
                    }
                });

                if(flag){
                    baseAll.addLoading();
                    $.ajax({
                        type:"get",
                        url:oPublic.basePath()+"/s/bike/owner/visitor/login",
                        data:{
                            mobile:mobileText,
                            validateCode:codeText
                        },
                        timeout:baseAll.timeout,
                        success:function(data){
                            if(data.opStatus==0){
                                baseAll.closeLoading();
                                self.jumpPage(mobileText);//页面跳转
                            }else{
                                baseAll.closeLoading();
                                oPublic.pubilcModal(data.msgDesc,"确定");
                            }
                        },
                        error:function(){
                            baseAll.closeLoading();
                            oPublic.pubilcModal("连接失败","确定");
                        }
                    })
                }
            });
        }
    };
    window.tourLogin=new TourLogin();
})();